package com.xian.tszs.meal.business;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.druid.util.StringUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xian.tszs.meal.entity.Gscoupon;
import com.xian.tszs.meal.entity.TsAdmin;
import com.xian.tszs.meal.service.GsCouponService;

/***
 * 优惠券管理
* @Title: GsCouponManageController.java 
* @author MRC
* @date 2019年5月24日 上午11:11:53 
* @version V1.0
 */
@Controller
@RequestMapping("business/coupon")
public class GsCouponManageController {

	@Autowired
	private GsCouponService gsCouponService;
	
	
	/***
	 * 优惠券管理
	* @author: MRC  
	* @date 2019年5月24日 上午11:12:22 
	* @return String 返回类型
	 */
	@GetMapping("couponManage")
	public String toCouponManage() {
		return "couponManage";
	}
	
	/***
	 * 优惠券添加
	* @author: MRC  
	* @date 2019年5月24日 上午11:32:41 
	* @return String 返回类型
	 */
	@GetMapping("couponAdd")
	public String toCouponAdd(String id,Model model) {
		
		if (!StringUtils.isEmpty(id)) {
			
			model.addAttribute("obj", gsCouponService.findCouponById(id));
		}
		return "couponAdd";
	}
	
	/***
	 * 优惠券分页
	* @author: MRC  
	* @date 2019年5月24日 上午11:27:09 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("findCouponPage")
	@ResponseBody
	public Map<String, Object> findCouponPage(Integer page, Integer limit,@AuthenticationPrincipal TsAdmin loginedUser,Gscoupon coupon) {
		
		Map<String, Object> map = new HashMap<String, Object>();

		PageHelper.startPage(page, limit);
		coupon.setBusinessId(loginedUser.getId());
		
		List<Gscoupon> lists = gsCouponService.findCouponPage(coupon);
		PageInfo<Gscoupon> pageInfo = new PageInfo<Gscoupon>(lists);

		map.put("code", 0);
		map.put("count", pageInfo.getTotal());
		map.put("data", pageInfo.getList());

		return map;
		
	}
	
	/**
	 * 保存一个优惠券
	* @author: MRC  
	* @date 2019年5月24日 上午11:48:53 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("saveCoupon")
	@ResponseBody
	public Map<String, Object> saveCoupon(@AuthenticationPrincipal TsAdmin loginedUser,Gscoupon coupon) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		
		if (StringUtils.isEmpty(coupon.getId())) {
			coupon.setBusinessId(loginedUser.getId());
			gsCouponService.saveCoupon(coupon);
		} else {
			gsCouponService.updateGsCoupon(coupon);
		}
		map.put("success", true);
		map.put("msg", "添加成功！");
		return map;
		
	}
	
	/***
	 * 删除一个优惠券
	* @author: MRC  
	* @date 2019年5月24日 下午12:00:01 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("deleteCouponById")
	@ResponseBody
	public Map<String, Object> deleteCouponById(String id) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		gsCouponService.deleteCouponById(id);
		
		map.put("success", true);
		map.put("msg", "删除成功！");
		
		return map;
		
	}
	
	/***
	 * 删除多个数据对象
	* @author: MRC  
	* @date 2019年5月27日 下午3:28:17 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("deleteMany")
	@ResponseBody
	public Map<String, Object> deleteMany(@RequestParam("ids[]") String [] ids) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		gsCouponService.deleteMany(ids);
		map.put("success", true);
		map.put("msg", "删除成功！");
		return map;
	}
	
	
	
}
